import { Route, Redirect } from 'react-router-dom'
import { getToken } from 'utils/storage'

/* 
普通路由：
  <Route     path="/xxx" component={组件} />
鉴权路由：(导航守卫)
  <AuthRoute path="/xxx" component={组件} /> 
封装成独立组件以后项目都可复用
*/

export default function AuthRoute({ component: Com, ...rest }) {
  // console.log('剩余参数', rest)
  return (
    <Route
      {...rest}
      render={(props) => {
        // console.log(props)
        // 获取本地 token ，用来识别用户是否登录
        // const token = localStorage.getItem('geek-pc')
        const token = getToken()
        if (token) {
          // 情况1：已登录-渲染正常组件
          return <Com {...props} />
        } else {
          // 情况2：未登录-重定向到登录页
          return <Redirect to={{ pathname: '/login', state: { form: props.location } }} />
        }
      }}
    />
  )
}
